package com.ltedu.system.domain.vo;

import com.ltedu.common.validate.Create;
import com.ltedu.common.validate.Update;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @className: SysMenuVo
 * @auther: Jerry
 * @date: 2020/11/29 19:05
 * @desctiption: TODO
 * @version: 1.0
 */
public class SysMenuVO implements Serializable {
    private static final long serialVersionUID = -8720810480350707393L;
    /**
     * 主键
     */
    @NotNull(groups = Update.class, message = "id不能为空")
    private Long id;

    /**
     * 父ID
     */
    @NotNull(groups = Update.class, message = "父id不能为空")
    private Long parentId;

    /**
     * 菜单名称
     */
    @NotEmpty(groups = Create.class, message = "菜单名称不能为空")
    @NotEmpty(groups = Update.class, message = "菜单名称不能为空")
    private String menuName;

    /**
     * 路由路径
     */
    private String path;

    /**
     * 组件路径
     */
    private String component;

    /**
     * 权限标识
     */
    private String perms;

    /**
     * 菜单图标
     */
    private String menuIcon;

    /**
     * 菜单类型(1：目录   2：菜单   3：按钮)
     */
    @NotNull(groups = Create.class, message = "菜单类型不能为空")
    @NotNull(groups = Update.class, message = "菜单类型不能为空")
    private Integer menuType;

    /**
     * 状态(1:正常，0:禁用)
     */
    @NotNull(groups = Create.class, message = "状态不能为空")
    @NotNull(groups = Update.class, message = "状态不能为空")
    private Integer state;

    /**
     * 是否显示(1:显示，0:隐藏)
     */
    @NotNull(groups = Create.class, message = "显示状态不能为空")
    @NotNull(groups = Update.class, message = "显示状态不能为空")
    private Integer visible;

    /**
     * 排序
     */
    @NotNull(groups = Create.class, message = "排序不能为空")
    @NotNull(groups = Update.class, message = "排序不能为空")
    private Integer sort;

    /**
     * 备注
     */
    private String remark;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    public String getMenuName() {
        return menuName;
    }

    public void setMenuName(String menuName) {
        this.menuName = menuName;
    }

    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }

    public String getComponent() {
        return component;
    }

    public void setComponent(String component) {
        this.component = component;
    }

    public String getPerms() {
        return perms;
    }

    public void setPerms(String perms) {
        this.perms = perms;
    }

    public String getMenuIcon() {
        return menuIcon;
    }

    public void setMenuIcon(String menuIcon) {
        this.menuIcon = menuIcon;
    }

    public Integer getMenuType() {
        return menuType;
    }

    public void setMenuType(Integer menuType) {
        this.menuType = menuType;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public Integer getVisible() {
        return visible;
    }

    public void setVisible(Integer visible) {
        this.visible = visible;
    }

    public Integer getSort() {
        return sort;
    }

    public void setSort(Integer sort) {
        this.sort = sort;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
}
